/*
'===============================================================================
'  Generated From - CSharp_EasyObject_BusinessEntity.vbgen
' 
'  ** IMPORTANT  ** 
'  How to Generate your stored procedures:
' 
'  SQL      = SQL_DAAB_StoredProcs.vbgen
'  
'  This object is 'abstract' which means you need to inherit from it to be able
'  to instantiate it.  This is very easily done. You can override properties and
'  methods in your derived class, this allows you to regenerate this class at any
'  time and not worry about overwriting custom code. 
'
'  NEVER EDIT THIS FILE.
'
'  public class YourObject :  _YourObject
'  {
'
'  }
'
'===============================================================================
*/

// Generated by MyGeneration Version # (1.3.0.3)

using System;
using System.Data;
using System.Data.Common;
using System.Configuration;
using System.Collections;
using System.Collections.Specialized;
using System.Xml;
using System.IO;

using Microsoft.Practices.EnterpriseLibrary.Data;
using NCI.EasyObjects;

namespace CMS.DAL
{

	#region Schema

	public class CompanySchema : NCI.EasyObjects.Schema
	{
		private static ArrayList _entries;
		public static SchemaItem CompanyID = new SchemaItem("CompanyID", DbType.Int32, true, false, false, true, false, false);
		public static SchemaItem CompanyName1 = new SchemaItem("CompanyName1", DbType.String, SchemaItemJustify.None, 250, true, false, false, false);
		public static SchemaItem CompanyName2 = new SchemaItem("CompanyName2", DbType.String, SchemaItemJustify.None, 250, true, false, false, false);
		public static SchemaItem CompanyName3 = new SchemaItem("CompanyName3", DbType.String, SchemaItemJustify.None, 250, true, false, false, false);
		public static SchemaItem Address1 = new SchemaItem("Address1", DbType.String, SchemaItemJustify.None, 250, true, false, false, false);
		public static SchemaItem Address2 = new SchemaItem("Address2", DbType.String, SchemaItemJustify.None, 250, true, false, false, false);
		public static SchemaItem Address3 = new SchemaItem("Address3", DbType.String, SchemaItemJustify.None, 250, true, false, false, false);
		public static SchemaItem Hotline = new SchemaItem("Hotline", DbType.String, SchemaItemJustify.None, 250, true, false, false, false);
		public static SchemaItem Tel = new SchemaItem("Tel", DbType.String, SchemaItemJustify.None, 250, true, false, false, false);
		public static SchemaItem Fax = new SchemaItem("Fax", DbType.String, SchemaItemJustify.None, 250, true, false, false, false);
		public static SchemaItem Email = new SchemaItem("Email", DbType.String, SchemaItemJustify.None, 250, true, false, false, false);
		public static SchemaItem Website = new SchemaItem("Website", DbType.String, SchemaItemJustify.None, 250, true, false, false, false);
		public static SchemaItem Copyright = new SchemaItem("Copyright", DbType.String, SchemaItemJustify.None, 250, true, false, false, false);
		public static SchemaItem BranchAddress1 = new SchemaItem("BranchAddress1", DbType.String, SchemaItemJustify.None, 250, true, false, false, false);
		public static SchemaItem BranchAddress2 = new SchemaItem("BranchAddress2", DbType.String, SchemaItemJustify.None, 250, true, false, false, false);
		public static SchemaItem BranchAddress3 = new SchemaItem("BranchAddress3", DbType.String, SchemaItemJustify.None, 250, true, false, false, false);
		public static SchemaItem BranchHotline = new SchemaItem("BranchHotline", DbType.String, SchemaItemJustify.None, 250, true, false, false, false);
		public static SchemaItem BranchTel = new SchemaItem("BranchTel", DbType.String, SchemaItemJustify.None, 250, true, false, false, false);
		public static SchemaItem BranchFax = new SchemaItem("BranchFax", DbType.String, SchemaItemJustify.None, 250, true, false, false, false);
		public static SchemaItem BranchEmail = new SchemaItem("BranchEmail", DbType.String, SchemaItemJustify.None, 250, true, false, false, false);
		public static SchemaItem BranchCompanyName1 = new SchemaItem("BranchCompanyName1", DbType.String, SchemaItemJustify.None, 250, true, false, false, false);
		public static SchemaItem BranchCompanyName2 = new SchemaItem("BranchCompanyName2", DbType.String, SchemaItemJustify.None, 250, true, false, false, false);
		public static SchemaItem BranchCompanyName3 = new SchemaItem("BranchCompanyName3", DbType.String, SchemaItemJustify.None, 250, true, false, false, false);
		public static SchemaItem YahooAccount1 = new SchemaItem("YahooAccount1", DbType.String, SchemaItemJustify.None, 250, true, false, false, false);
		public static SchemaItem YahooAccount2 = new SchemaItem("YahooAccount2", DbType.String, SchemaItemJustify.None, 250, true, false, false, false);
		public static SchemaItem YahooAccount3 = new SchemaItem("YahooAccount3", DbType.String, SchemaItemJustify.None, 250, true, false, false, false);
		public static SchemaItem YahooAccount4 = new SchemaItem("YahooAccount4", DbType.String, SchemaItemJustify.None, 250, true, false, false, false);
		public static SchemaItem SkypeAccount1 = new SchemaItem("SkypeAccount1", DbType.String, SchemaItemJustify.None, 250, true, false, false, false);
		public static SchemaItem SkypeAccount2 = new SchemaItem("SkypeAccount2", DbType.String, SchemaItemJustify.None, 250, true, false, false, false);
		public static SchemaItem SkypeAccount3 = new SchemaItem("SkypeAccount3", DbType.String, SchemaItemJustify.None, 250, true, false, false, false);
		public static SchemaItem SkypeAccount4 = new SchemaItem("SkypeAccount4", DbType.String, SchemaItemJustify.None, 250, true, false, false, false);

		public override ArrayList SchemaEntries
		{
			get
			{
				if (_entries == null )
				{
					_entries = new ArrayList();
					_entries.Add(CompanySchema.CompanyID);
					_entries.Add(CompanySchema.CompanyName1);
					_entries.Add(CompanySchema.CompanyName2);
					_entries.Add(CompanySchema.CompanyName3);
					_entries.Add(CompanySchema.Address1);
					_entries.Add(CompanySchema.Address2);
					_entries.Add(CompanySchema.Address3);
					_entries.Add(CompanySchema.Hotline);
					_entries.Add(CompanySchema.Tel);
					_entries.Add(CompanySchema.Fax);
					_entries.Add(CompanySchema.Email);
					_entries.Add(CompanySchema.Website);
					_entries.Add(CompanySchema.Copyright);
					_entries.Add(CompanySchema.BranchAddress1);
					_entries.Add(CompanySchema.BranchAddress2);
					_entries.Add(CompanySchema.BranchAddress3);
					_entries.Add(CompanySchema.BranchHotline);
					_entries.Add(CompanySchema.BranchTel);
					_entries.Add(CompanySchema.BranchFax);
					_entries.Add(CompanySchema.BranchEmail);
					_entries.Add(CompanySchema.BranchCompanyName1);
					_entries.Add(CompanySchema.BranchCompanyName2);
					_entries.Add(CompanySchema.BranchCompanyName3);
					_entries.Add(CompanySchema.YahooAccount1);
					_entries.Add(CompanySchema.YahooAccount2);
					_entries.Add(CompanySchema.YahooAccount3);
					_entries.Add(CompanySchema.YahooAccount4);
					_entries.Add(CompanySchema.SkypeAccount1);
					_entries.Add(CompanySchema.SkypeAccount2);
					_entries.Add(CompanySchema.SkypeAccount3);
					_entries.Add(CompanySchema.SkypeAccount4);
				}
				return _entries;
			}
		}
		
		public static bool HasAutoKey 
		{
			get { return true;	}
		}

		public static bool HasRowID 
		{
			get { return false;	}
		}
	}
	#endregion

	public abstract class _Company : EasyObject
	{

		public _Company()
		{
			CompanySchema _schema = new CompanySchema();
			this.SchemaEntries = _schema.SchemaEntries;
			this.SchemaGlobal = "dbo";
		}
		
		public override void FlushData() 	 
		{ 	 
			this._whereClause = null; 	 
			this._aggregateClause = null; 	 
			base.FlushData(); 	 
		}
			   
		/// <summary>
		/// Loads the business object with info from the database, based on the requested primary key.
		/// </summary>
		/// <param name="CompanyID"></param>
		/// <returns>A Boolean indicating success or failure of the query</returns>
		public bool LoadByPrimaryKey(int CompanyID)
		{
			switch(this.DefaultCommandType)
			{
				case CommandType.StoredProcedure:
					ListDictionary parameters = new ListDictionary();

					// Add in parameters
					parameters.Add(CompanySchema.CompanyID.FieldName, CompanyID);

					return base.LoadFromSql(this.SchemaStoredProcedureWithSeparator + "sp_GetCompany", parameters, CommandType.StoredProcedure);

				case CommandType.Text:
					this.Query.ClearAll();
					this.Where.WhereClauseReset();
					this.Where.CompanyID.Value = CompanyID;
					return this.Query.Load();

				default:
					throw new ArgumentException("Invalid CommandType", "commandType");
			}
		}
	
		/// <summary>
		/// Loads all records from the table.
		/// </summary>
		/// <returns>A Boolean indicating success or failure of the query</returns>
		public bool LoadAll()
		{
			switch(this.DefaultCommandType)
			{
				case CommandType.StoredProcedure:
					return base.LoadFromSql(this.SchemaStoredProcedureWithSeparator + "sp_GetAllCompany", null, CommandType.StoredProcedure);

				case CommandType.Text:
					this.Query.ClearAll();
					this.Where.WhereClauseReset();
					return this.Query.Load();

				default:
					throw new ArgumentException("Invalid CommandType", "commandType");
			}
		}

		/// <summary>
		/// Adds a new record to the internal table.
		/// </summary>
		public override void AddNew()
		{
			base.AddNew();
			this.ApplyDefaults();
		}

		/// <summary>
		/// Apply any default values to columns
		/// </summary>
		protected override void ApplyDefaults()
		{
		}

		protected override DbCommand GetInsertCommand(CommandType commandType)
		{	
			DbCommand dbCommand;

			// Create the Database object, using the default database service. The
			// default database service is determined through configuration.
			Database db = GetDatabase();

			switch(commandType)
			{
				case CommandType.StoredProcedure:
					string sqlCommand = this.SchemaStoredProcedureWithSeparator + "sp_AddCompany";
					dbCommand = db.GetStoredProcCommand(sqlCommand);

					db.AddParameter(dbCommand, "CompanyID", DbType.Int32, 0, ParameterDirection.Output, true, 0, 0, "CompanyID", DataRowVersion.Default, Convert.DBNull);
					CreateParameters(db, dbCommand);
					
					return dbCommand;

				case CommandType.Text:
					this.Query.ClearAll();
					this.Where.WhereClauseReset();
					foreach(SchemaItem item in this.SchemaEntries)
					{
						if (!item.IsComputed)
						{
							if ((item.IsAutoKey && this.IdentityInsert) || !item.IsAutoKey)
							{
								this.Query.AddInsertColumn(item);
							}
						}
					}
					dbCommand = this.Query.GetInsertCommandWrapper();

					dbCommand.Parameters.Clear();
					if (this.IdentityInsert)
					{
						db.AddInParameter(dbCommand, "CompanyID", DbType.Int32, "CompanyID", DataRowVersion.Default);
					}
					else
					{
						db.AddParameter(dbCommand, "CompanyID", DbType.Int32, 0, ParameterDirection.Output, true, 0, 0, "CompanyID", DataRowVersion.Default, Convert.DBNull);
					}
					CreateParameters(db, dbCommand);

					return dbCommand;

				default:
					throw new ArgumentException("Invalid CommandType", "commandType");
			}
		}

		protected override DbCommand GetUpdateCommand(CommandType commandType)
		{
            DbCommand dbCommand;

			// Create the Database object, using the default database service. The
			// default database service is determined through configuration.
			Database db = GetDatabase();

			switch(commandType)
			{
				case CommandType.StoredProcedure:
					string sqlCommand = this.SchemaStoredProcedureWithSeparator + "sp_UpdateCompany";
					dbCommand = db.GetStoredProcCommand(sqlCommand);

					db.AddInParameter(dbCommand, "CompanyID", DbType.Int32, "CompanyID", DataRowVersion.Current);
					CreateParameters(db, dbCommand);
					
					return dbCommand;

				case CommandType.Text:
					this.Query.ClearAll();
					foreach(SchemaItem item in this.SchemaEntries)
					{
						if (!(item.IsAutoKey || item.IsComputed))
						{
							this.Query.AddUpdateColumn(item);
						}
					}

					this.Where.WhereClauseReset();
					this.Where.CompanyID.Operator = WhereParameter.Operand.Equal;
					dbCommand = this.Query.GetUpdateCommandWrapper();

					dbCommand.Parameters.Clear();
					CreateParameters(db, dbCommand);
					db.AddInParameter(dbCommand, "CompanyID", DbType.Int32, "CompanyID", DataRowVersion.Current);
					
					return dbCommand;

				default:
					throw new ArgumentException("Invalid CommandType", "commandType");
			}
		}

		protected override DbCommand GetDeleteCommand(CommandType commandType)
		{
            DbCommand dbCommand;

			// Create the Database object, using the default database service. The
			// default database service is determined through configuration.
			Database db = GetDatabase();

			switch(commandType)
			{
				case CommandType.StoredProcedure:
					string sqlCommand = this.SchemaStoredProcedureWithSeparator + "sp_DeleteCompany";
					dbCommand = db.GetStoredProcCommand(sqlCommand);
					db.AddInParameter(dbCommand, "CompanyID", DbType.Int32, "CompanyID", DataRowVersion.Current);
					
					return dbCommand;

				case CommandType.Text:
					this.Query.ClearAll();
					this.Where.WhereClauseReset();
					this.Where.CompanyID.Operator = WhereParameter.Operand.Equal;
					dbCommand = this.Query.GetDeleteCommandWrapper();

					dbCommand.Parameters.Clear();
					db.AddInParameter(dbCommand, "CompanyID", DbType.Int32, "CompanyID", DataRowVersion.Current);
					
					return dbCommand;

				default:
					throw new ArgumentException("Invalid CommandType", "commandType");
			}
		}

		private void CreateParameters(Database db, DbCommand dbCommand)
		{
			db.AddInParameter(dbCommand, "CompanyName1", DbType.String, "CompanyName1", DataRowVersion.Current);
			db.AddInParameter(dbCommand, "CompanyName2", DbType.String, "CompanyName2", DataRowVersion.Current);
			db.AddInParameter(dbCommand, "CompanyName3", DbType.String, "CompanyName3", DataRowVersion.Current);
			db.AddInParameter(dbCommand, "Address1", DbType.String, "Address1", DataRowVersion.Current);
			db.AddInParameter(dbCommand, "Address2", DbType.String, "Address2", DataRowVersion.Current);
			db.AddInParameter(dbCommand, "Address3", DbType.String, "Address3", DataRowVersion.Current);
			db.AddInParameter(dbCommand, "Hotline", DbType.String, "Hotline", DataRowVersion.Current);
			db.AddInParameter(dbCommand, "Tel", DbType.String, "Tel", DataRowVersion.Current);
			db.AddInParameter(dbCommand, "Fax", DbType.String, "Fax", DataRowVersion.Current);
			db.AddInParameter(dbCommand, "Email", DbType.String, "Email", DataRowVersion.Current);
			db.AddInParameter(dbCommand, "Website", DbType.String, "Website", DataRowVersion.Current);
			db.AddInParameter(dbCommand, "Copyright", DbType.String, "Copyright", DataRowVersion.Current);
			db.AddInParameter(dbCommand, "BranchAddress1", DbType.String, "BranchAddress1", DataRowVersion.Current);
			db.AddInParameter(dbCommand, "BranchAddress2", DbType.String, "BranchAddress2", DataRowVersion.Current);
			db.AddInParameter(dbCommand, "BranchAddress3", DbType.String, "BranchAddress3", DataRowVersion.Current);
			db.AddInParameter(dbCommand, "BranchHotline", DbType.String, "BranchHotline", DataRowVersion.Current);
			db.AddInParameter(dbCommand, "BranchTel", DbType.String, "BranchTel", DataRowVersion.Current);
			db.AddInParameter(dbCommand, "BranchFax", DbType.String, "BranchFax", DataRowVersion.Current);
			db.AddInParameter(dbCommand, "BranchEmail", DbType.String, "BranchEmail", DataRowVersion.Current);
			db.AddInParameter(dbCommand, "BranchCompanyName1", DbType.String, "BranchCompanyName1", DataRowVersion.Current);
			db.AddInParameter(dbCommand, "BranchCompanyName2", DbType.String, "BranchCompanyName2", DataRowVersion.Current);
			db.AddInParameter(dbCommand, "BranchCompanyName3", DbType.String, "BranchCompanyName3", DataRowVersion.Current);
			db.AddInParameter(dbCommand, "YahooAccount1", DbType.String, "YahooAccount1", DataRowVersion.Current);
			db.AddInParameter(dbCommand, "YahooAccount2", DbType.String, "YahooAccount2", DataRowVersion.Current);
			db.AddInParameter(dbCommand, "YahooAccount3", DbType.String, "YahooAccount3", DataRowVersion.Current);
			db.AddInParameter(dbCommand, "YahooAccount4", DbType.String, "YahooAccount4", DataRowVersion.Current);
			db.AddInParameter(dbCommand, "SkypeAccount1", DbType.String, "SkypeAccount1", DataRowVersion.Current);
			db.AddInParameter(dbCommand, "SkypeAccount2", DbType.String, "SkypeAccount2", DataRowVersion.Current);
			db.AddInParameter(dbCommand, "SkypeAccount3", DbType.String, "SkypeAccount3", DataRowVersion.Current);
			db.AddInParameter(dbCommand, "SkypeAccount4", DbType.String, "SkypeAccount4", DataRowVersion.Current);
		}
		
		#region Properties
		public virtual int CompanyID
		{
			get
			{
				return this.GetInteger(CompanySchema.CompanyID.FieldName);
	    	}
			set
			{
				this.SetInteger(CompanySchema.CompanyID.FieldName, value);
			}
		}
		public virtual string CompanyName1
		{
			get
			{
				return this.GetString(CompanySchema.CompanyName1.FieldName);
	    	}
			set
			{
				this.SetString(CompanySchema.CompanyName1.FieldName, value);
			}
		}
		public virtual string CompanyName2
		{
			get
			{
				return this.GetString(CompanySchema.CompanyName2.FieldName);
	    	}
			set
			{
				this.SetString(CompanySchema.CompanyName2.FieldName, value);
			}
		}
		public virtual string CompanyName3
		{
			get
			{
				return this.GetString(CompanySchema.CompanyName3.FieldName);
	    	}
			set
			{
				this.SetString(CompanySchema.CompanyName3.FieldName, value);
			}
		}
		public virtual string Address1
		{
			get
			{
				return this.GetString(CompanySchema.Address1.FieldName);
	    	}
			set
			{
				this.SetString(CompanySchema.Address1.FieldName, value);
			}
		}
		public virtual string Address2
		{
			get
			{
				return this.GetString(CompanySchema.Address2.FieldName);
	    	}
			set
			{
				this.SetString(CompanySchema.Address2.FieldName, value);
			}
		}
		public virtual string Address3
		{
			get
			{
				return this.GetString(CompanySchema.Address3.FieldName);
	    	}
			set
			{
				this.SetString(CompanySchema.Address3.FieldName, value);
			}
		}
		public virtual string Hotline
		{
			get
			{
				return this.GetString(CompanySchema.Hotline.FieldName);
	    	}
			set
			{
				this.SetString(CompanySchema.Hotline.FieldName, value);
			}
		}
		public virtual string Tel
		{
			get
			{
				return this.GetString(CompanySchema.Tel.FieldName);
	    	}
			set
			{
				this.SetString(CompanySchema.Tel.FieldName, value);
			}
		}
		public virtual string Fax
		{
			get
			{
				return this.GetString(CompanySchema.Fax.FieldName);
	    	}
			set
			{
				this.SetString(CompanySchema.Fax.FieldName, value);
			}
		}
		public virtual string Email
		{
			get
			{
				return this.GetString(CompanySchema.Email.FieldName);
	    	}
			set
			{
				this.SetString(CompanySchema.Email.FieldName, value);
			}
		}
		public virtual string Website
		{
			get
			{
				return this.GetString(CompanySchema.Website.FieldName);
	    	}
			set
			{
				this.SetString(CompanySchema.Website.FieldName, value);
			}
		}
		public virtual string Copyright
		{
			get
			{
				return this.GetString(CompanySchema.Copyright.FieldName);
	    	}
			set
			{
				this.SetString(CompanySchema.Copyright.FieldName, value);
			}
		}
		public virtual string BranchAddress1
		{
			get
			{
				return this.GetString(CompanySchema.BranchAddress1.FieldName);
	    	}
			set
			{
				this.SetString(CompanySchema.BranchAddress1.FieldName, value);
			}
		}
		public virtual string BranchAddress2
		{
			get
			{
				return this.GetString(CompanySchema.BranchAddress2.FieldName);
	    	}
			set
			{
				this.SetString(CompanySchema.BranchAddress2.FieldName, value);
			}
		}
		public virtual string BranchAddress3
		{
			get
			{
				return this.GetString(CompanySchema.BranchAddress3.FieldName);
	    	}
			set
			{
				this.SetString(CompanySchema.BranchAddress3.FieldName, value);
			}
		}
		public virtual string BranchHotline
		{
			get
			{
				return this.GetString(CompanySchema.BranchHotline.FieldName);
	    	}
			set
			{
				this.SetString(CompanySchema.BranchHotline.FieldName, value);
			}
		}
		public virtual string BranchTel
		{
			get
			{
				return this.GetString(CompanySchema.BranchTel.FieldName);
	    	}
			set
			{
				this.SetString(CompanySchema.BranchTel.FieldName, value);
			}
		}
		public virtual string BranchFax
		{
			get
			{
				return this.GetString(CompanySchema.BranchFax.FieldName);
	    	}
			set
			{
				this.SetString(CompanySchema.BranchFax.FieldName, value);
			}
		}
		public virtual string BranchEmail
		{
			get
			{
				return this.GetString(CompanySchema.BranchEmail.FieldName);
	    	}
			set
			{
				this.SetString(CompanySchema.BranchEmail.FieldName, value);
			}
		}
		public virtual string BranchCompanyName1
		{
			get
			{
				return this.GetString(CompanySchema.BranchCompanyName1.FieldName);
	    	}
			set
			{
				this.SetString(CompanySchema.BranchCompanyName1.FieldName, value);
			}
		}
		public virtual string BranchCompanyName2
		{
			get
			{
				return this.GetString(CompanySchema.BranchCompanyName2.FieldName);
	    	}
			set
			{
				this.SetString(CompanySchema.BranchCompanyName2.FieldName, value);
			}
		}
		public virtual string BranchCompanyName3
		{
			get
			{
				return this.GetString(CompanySchema.BranchCompanyName3.FieldName);
	    	}
			set
			{
				this.SetString(CompanySchema.BranchCompanyName3.FieldName, value);
			}
		}
		public virtual string YahooAccount1
		{
			get
			{
				return this.GetString(CompanySchema.YahooAccount1.FieldName);
	    	}
			set
			{
				this.SetString(CompanySchema.YahooAccount1.FieldName, value);
			}
		}
		public virtual string YahooAccount2
		{
			get
			{
				return this.GetString(CompanySchema.YahooAccount2.FieldName);
	    	}
			set
			{
				this.SetString(CompanySchema.YahooAccount2.FieldName, value);
			}
		}
		public virtual string YahooAccount3
		{
			get
			{
				return this.GetString(CompanySchema.YahooAccount3.FieldName);
	    	}
			set
			{
				this.SetString(CompanySchema.YahooAccount3.FieldName, value);
			}
		}
		public virtual string YahooAccount4
		{
			get
			{
				return this.GetString(CompanySchema.YahooAccount4.FieldName);
	    	}
			set
			{
				this.SetString(CompanySchema.YahooAccount4.FieldName, value);
			}
		}
		public virtual string SkypeAccount1
		{
			get
			{
				return this.GetString(CompanySchema.SkypeAccount1.FieldName);
	    	}
			set
			{
				this.SetString(CompanySchema.SkypeAccount1.FieldName, value);
			}
		}
		public virtual string SkypeAccount2
		{
			get
			{
				return this.GetString(CompanySchema.SkypeAccount2.FieldName);
	    	}
			set
			{
				this.SetString(CompanySchema.SkypeAccount2.FieldName, value);
			}
		}
		public virtual string SkypeAccount3
		{
			get
			{
				return this.GetString(CompanySchema.SkypeAccount3.FieldName);
	    	}
			set
			{
				this.SetString(CompanySchema.SkypeAccount3.FieldName, value);
			}
		}
		public virtual string SkypeAccount4
		{
			get
			{
				return this.GetString(CompanySchema.SkypeAccount4.FieldName);
	    	}
			set
			{
				this.SetString(CompanySchema.SkypeAccount4.FieldName, value);
			}
		}

		public override string TableName
		{
			get { return "Company"; }
		}
		
		#endregion		
		
		#region String Properties
		public virtual string s_CompanyID
		{
			get
			{
			    return this.IsColumnNull(CompanySchema.CompanyID.FieldName) ? string.Empty : base.GetIntegerAsString(CompanySchema.CompanyID.FieldName);
			}
			set
			{
			    if(string.Empty == value)
			        this.SetColumnNull(CompanySchema.CompanyID.FieldName);
			    else
			        this.CompanyID = base.SetIntegerAsString(CompanySchema.CompanyID.FieldName, value);
			}
		}
		public virtual string s_CompanyName1
		{
			get
			{
			    return this.IsColumnNull(CompanySchema.CompanyName1.FieldName) ? string.Empty : base.GetStringAsString(CompanySchema.CompanyName1.FieldName);
			}
			set
			{
			    if(string.Empty == value)
			        this.SetColumnNull(CompanySchema.CompanyName1.FieldName);
			    else
			        this.CompanyName1 = base.SetStringAsString(CompanySchema.CompanyName1.FieldName, value);
			}
		}
		public virtual string s_CompanyName2
		{
			get
			{
			    return this.IsColumnNull(CompanySchema.CompanyName2.FieldName) ? string.Empty : base.GetStringAsString(CompanySchema.CompanyName2.FieldName);
			}
			set
			{
			    if(string.Empty == value)
			        this.SetColumnNull(CompanySchema.CompanyName2.FieldName);
			    else
			        this.CompanyName2 = base.SetStringAsString(CompanySchema.CompanyName2.FieldName, value);
			}
		}
		public virtual string s_CompanyName3
		{
			get
			{
			    return this.IsColumnNull(CompanySchema.CompanyName3.FieldName) ? string.Empty : base.GetStringAsString(CompanySchema.CompanyName3.FieldName);
			}
			set
			{
			    if(string.Empty == value)
			        this.SetColumnNull(CompanySchema.CompanyName3.FieldName);
			    else
			        this.CompanyName3 = base.SetStringAsString(CompanySchema.CompanyName3.FieldName, value);
			}
		}
		public virtual string s_Address1
		{
			get
			{
			    return this.IsColumnNull(CompanySchema.Address1.FieldName) ? string.Empty : base.GetStringAsString(CompanySchema.Address1.FieldName);
			}
			set
			{
			    if(string.Empty == value)
			        this.SetColumnNull(CompanySchema.Address1.FieldName);
			    else
			        this.Address1 = base.SetStringAsString(CompanySchema.Address1.FieldName, value);
			}
		}
		public virtual string s_Address2
		{
			get
			{
			    return this.IsColumnNull(CompanySchema.Address2.FieldName) ? string.Empty : base.GetStringAsString(CompanySchema.Address2.FieldName);
			}
			set
			{
			    if(string.Empty == value)
			        this.SetColumnNull(CompanySchema.Address2.FieldName);
			    else
			        this.Address2 = base.SetStringAsString(CompanySchema.Address2.FieldName, value);
			}
		}
		public virtual string s_Address3
		{
			get
			{
			    return this.IsColumnNull(CompanySchema.Address3.FieldName) ? string.Empty : base.GetStringAsString(CompanySchema.Address3.FieldName);
			}
			set
			{
			    if(string.Empty == value)
			        this.SetColumnNull(CompanySchema.Address3.FieldName);
			    else
			        this.Address3 = base.SetStringAsString(CompanySchema.Address3.FieldName, value);
			}
		}
		public virtual string s_Hotline
		{
			get
			{
			    return this.IsColumnNull(CompanySchema.Hotline.FieldName) ? string.Empty : base.GetStringAsString(CompanySchema.Hotline.FieldName);
			}
			set
			{
			    if(string.Empty == value)
			        this.SetColumnNull(CompanySchema.Hotline.FieldName);
			    else
			        this.Hotline = base.SetStringAsString(CompanySchema.Hotline.FieldName, value);
			}
		}
		public virtual string s_Tel
		{
			get
			{
			    return this.IsColumnNull(CompanySchema.Tel.FieldName) ? string.Empty : base.GetStringAsString(CompanySchema.Tel.FieldName);
			}
			set
			{
			    if(string.Empty == value)
			        this.SetColumnNull(CompanySchema.Tel.FieldName);
			    else
			        this.Tel = base.SetStringAsString(CompanySchema.Tel.FieldName, value);
			}
		}
		public virtual string s_Fax
		{
			get
			{
			    return this.IsColumnNull(CompanySchema.Fax.FieldName) ? string.Empty : base.GetStringAsString(CompanySchema.Fax.FieldName);
			}
			set
			{
			    if(string.Empty == value)
			        this.SetColumnNull(CompanySchema.Fax.FieldName);
			    else
			        this.Fax = base.SetStringAsString(CompanySchema.Fax.FieldName, value);
			}
		}
		public virtual string s_Email
		{
			get
			{
			    return this.IsColumnNull(CompanySchema.Email.FieldName) ? string.Empty : base.GetStringAsString(CompanySchema.Email.FieldName);
			}
			set
			{
			    if(string.Empty == value)
			        this.SetColumnNull(CompanySchema.Email.FieldName);
			    else
			        this.Email = base.SetStringAsString(CompanySchema.Email.FieldName, value);
			}
		}
		public virtual string s_Website
		{
			get
			{
			    return this.IsColumnNull(CompanySchema.Website.FieldName) ? string.Empty : base.GetStringAsString(CompanySchema.Website.FieldName);
			}
			set
			{
			    if(string.Empty == value)
			        this.SetColumnNull(CompanySchema.Website.FieldName);
			    else
			        this.Website = base.SetStringAsString(CompanySchema.Website.FieldName, value);
			}
		}
		public virtual string s_Copyright
		{
			get
			{
			    return this.IsColumnNull(CompanySchema.Copyright.FieldName) ? string.Empty : base.GetStringAsString(CompanySchema.Copyright.FieldName);
			}
			set
			{
			    if(string.Empty == value)
			        this.SetColumnNull(CompanySchema.Copyright.FieldName);
			    else
			        this.Copyright = base.SetStringAsString(CompanySchema.Copyright.FieldName, value);
			}
		}
		public virtual string s_BranchAddress1
		{
			get
			{
			    return this.IsColumnNull(CompanySchema.BranchAddress1.FieldName) ? string.Empty : base.GetStringAsString(CompanySchema.BranchAddress1.FieldName);
			}
			set
			{
			    if(string.Empty == value)
			        this.SetColumnNull(CompanySchema.BranchAddress1.FieldName);
			    else
			        this.BranchAddress1 = base.SetStringAsString(CompanySchema.BranchAddress1.FieldName, value);
			}
		}
		public virtual string s_BranchAddress2
		{
			get
			{
			    return this.IsColumnNull(CompanySchema.BranchAddress2.FieldName) ? string.Empty : base.GetStringAsString(CompanySchema.BranchAddress2.FieldName);
			}
			set
			{
			    if(string.Empty == value)
			        this.SetColumnNull(CompanySchema.BranchAddress2.FieldName);
			    else
			        this.BranchAddress2 = base.SetStringAsString(CompanySchema.BranchAddress2.FieldName, value);
			}
		}
		public virtual string s_BranchAddress3
		{
			get
			{
			    return this.IsColumnNull(CompanySchema.BranchAddress3.FieldName) ? string.Empty : base.GetStringAsString(CompanySchema.BranchAddress3.FieldName);
			}
			set
			{
			    if(string.Empty == value)
			        this.SetColumnNull(CompanySchema.BranchAddress3.FieldName);
			    else
			        this.BranchAddress3 = base.SetStringAsString(CompanySchema.BranchAddress3.FieldName, value);
			}
		}
		public virtual string s_BranchHotline
		{
			get
			{
			    return this.IsColumnNull(CompanySchema.BranchHotline.FieldName) ? string.Empty : base.GetStringAsString(CompanySchema.BranchHotline.FieldName);
			}
			set
			{
			    if(string.Empty == value)
			        this.SetColumnNull(CompanySchema.BranchHotline.FieldName);
			    else
			        this.BranchHotline = base.SetStringAsString(CompanySchema.BranchHotline.FieldName, value);
			}
		}
		public virtual string s_BranchTel
		{
			get
			{
			    return this.IsColumnNull(CompanySchema.BranchTel.FieldName) ? string.Empty : base.GetStringAsString(CompanySchema.BranchTel.FieldName);
			}
			set
			{
			    if(string.Empty == value)
			        this.SetColumnNull(CompanySchema.BranchTel.FieldName);
			    else
			        this.BranchTel = base.SetStringAsString(CompanySchema.BranchTel.FieldName, value);
			}
		}
		public virtual string s_BranchFax
		{
			get
			{
			    return this.IsColumnNull(CompanySchema.BranchFax.FieldName) ? string.Empty : base.GetStringAsString(CompanySchema.BranchFax.FieldName);
			}
			set
			{
			    if(string.Empty == value)
			        this.SetColumnNull(CompanySchema.BranchFax.FieldName);
			    else
			        this.BranchFax = base.SetStringAsString(CompanySchema.BranchFax.FieldName, value);
			}
		}
		public virtual string s_BranchEmail
		{
			get
			{
			    return this.IsColumnNull(CompanySchema.BranchEmail.FieldName) ? string.Empty : base.GetStringAsString(CompanySchema.BranchEmail.FieldName);
			}
			set
			{
			    if(string.Empty == value)
			        this.SetColumnNull(CompanySchema.BranchEmail.FieldName);
			    else
			        this.BranchEmail = base.SetStringAsString(CompanySchema.BranchEmail.FieldName, value);
			}
		}
		public virtual string s_BranchCompanyName1
		{
			get
			{
			    return this.IsColumnNull(CompanySchema.BranchCompanyName1.FieldName) ? string.Empty : base.GetStringAsString(CompanySchema.BranchCompanyName1.FieldName);
			}
			set
			{
			    if(string.Empty == value)
			        this.SetColumnNull(CompanySchema.BranchCompanyName1.FieldName);
			    else
			        this.BranchCompanyName1 = base.SetStringAsString(CompanySchema.BranchCompanyName1.FieldName, value);
			}
		}
		public virtual string s_BranchCompanyName2
		{
			get
			{
			    return this.IsColumnNull(CompanySchema.BranchCompanyName2.FieldName) ? string.Empty : base.GetStringAsString(CompanySchema.BranchCompanyName2.FieldName);
			}
			set
			{
			    if(string.Empty == value)
			        this.SetColumnNull(CompanySchema.BranchCompanyName2.FieldName);
			    else
			        this.BranchCompanyName2 = base.SetStringAsString(CompanySchema.BranchCompanyName2.FieldName, value);
			}
		}
		public virtual string s_BranchCompanyName3
		{
			get
			{
			    return this.IsColumnNull(CompanySchema.BranchCompanyName3.FieldName) ? string.Empty : base.GetStringAsString(CompanySchema.BranchCompanyName3.FieldName);
			}
			set
			{
			    if(string.Empty == value)
			        this.SetColumnNull(CompanySchema.BranchCompanyName3.FieldName);
			    else
			        this.BranchCompanyName3 = base.SetStringAsString(CompanySchema.BranchCompanyName3.FieldName, value);
			}
		}
		public virtual string s_YahooAccount1
		{
			get
			{
			    return this.IsColumnNull(CompanySchema.YahooAccount1.FieldName) ? string.Empty : base.GetStringAsString(CompanySchema.YahooAccount1.FieldName);
			}
			set
			{
			    if(string.Empty == value)
			        this.SetColumnNull(CompanySchema.YahooAccount1.FieldName);
			    else
			        this.YahooAccount1 = base.SetStringAsString(CompanySchema.YahooAccount1.FieldName, value);
			}
		}
		public virtual string s_YahooAccount2
		{
			get
			{
			    return this.IsColumnNull(CompanySchema.YahooAccount2.FieldName) ? string.Empty : base.GetStringAsString(CompanySchema.YahooAccount2.FieldName);
			}
			set
			{
			    if(string.Empty == value)
			        this.SetColumnNull(CompanySchema.YahooAccount2.FieldName);
			    else
			        this.YahooAccount2 = base.SetStringAsString(CompanySchema.YahooAccount2.FieldName, value);
			}
		}
		public virtual string s_YahooAccount3
		{
			get
			{
			    return this.IsColumnNull(CompanySchema.YahooAccount3.FieldName) ? string.Empty : base.GetStringAsString(CompanySchema.YahooAccount3.FieldName);
			}
			set
			{
			    if(string.Empty == value)
			        this.SetColumnNull(CompanySchema.YahooAccount3.FieldName);
			    else
			        this.YahooAccount3 = base.SetStringAsString(CompanySchema.YahooAccount3.FieldName, value);
			}
		}
		public virtual string s_YahooAccount4
		{
			get
			{
			    return this.IsColumnNull(CompanySchema.YahooAccount4.FieldName) ? string.Empty : base.GetStringAsString(CompanySchema.YahooAccount4.FieldName);
			}
			set
			{
			    if(string.Empty == value)
			        this.SetColumnNull(CompanySchema.YahooAccount4.FieldName);
			    else
			        this.YahooAccount4 = base.SetStringAsString(CompanySchema.YahooAccount4.FieldName, value);
			}
		}
		public virtual string s_SkypeAccount1
		{
			get
			{
			    return this.IsColumnNull(CompanySchema.SkypeAccount1.FieldName) ? string.Empty : base.GetStringAsString(CompanySchema.SkypeAccount1.FieldName);
			}
			set
			{
			    if(string.Empty == value)
			        this.SetColumnNull(CompanySchema.SkypeAccount1.FieldName);
			    else
			        this.SkypeAccount1 = base.SetStringAsString(CompanySchema.SkypeAccount1.FieldName, value);
			}
		}
		public virtual string s_SkypeAccount2
		{
			get
			{
			    return this.IsColumnNull(CompanySchema.SkypeAccount2.FieldName) ? string.Empty : base.GetStringAsString(CompanySchema.SkypeAccount2.FieldName);
			}
			set
			{
			    if(string.Empty == value)
			        this.SetColumnNull(CompanySchema.SkypeAccount2.FieldName);
			    else
			        this.SkypeAccount2 = base.SetStringAsString(CompanySchema.SkypeAccount2.FieldName, value);
			}
		}
		public virtual string s_SkypeAccount3
		{
			get
			{
			    return this.IsColumnNull(CompanySchema.SkypeAccount3.FieldName) ? string.Empty : base.GetStringAsString(CompanySchema.SkypeAccount3.FieldName);
			}
			set
			{
			    if(string.Empty == value)
			        this.SetColumnNull(CompanySchema.SkypeAccount3.FieldName);
			    else
			        this.SkypeAccount3 = base.SetStringAsString(CompanySchema.SkypeAccount3.FieldName, value);
			}
		}
		public virtual string s_SkypeAccount4
		{
			get
			{
			    return this.IsColumnNull(CompanySchema.SkypeAccount4.FieldName) ? string.Empty : base.GetStringAsString(CompanySchema.SkypeAccount4.FieldName);
			}
			set
			{
			    if(string.Empty == value)
			        this.SetColumnNull(CompanySchema.SkypeAccount4.FieldName);
			    else
			        this.SkypeAccount4 = base.SetStringAsString(CompanySchema.SkypeAccount4.FieldName, value);
			}
		}
		#endregion		
	
		#region Where Clause
		public class WhereClause
		{
			public WhereClause(EasyObject entity)
			{
				this._entity = entity;
			}
			
			public TearOffWhereParameter TearOff
			{
				get
				{
					if(_tearOff == null)
					{
						_tearOff = new TearOffWhereParameter(this);
					}

					return _tearOff;
				}
			}

			#region TearOff's
			public class TearOffWhereParameter
			{
				public TearOffWhereParameter(WhereClause clause)
				{
					this._clause = clause;
				}
				
				
				public WhereParameter CompanyID
				{
					get
					{
							WhereParameter wp = new WhereParameter(CompanySchema.CompanyID);
							this._clause._entity.Query.AddWhereParameter(wp);
							return wp;
					}
				}

				public WhereParameter CompanyName1
				{
					get
					{
							WhereParameter wp = new WhereParameter(CompanySchema.CompanyName1);
							this._clause._entity.Query.AddWhereParameter(wp);
							return wp;
					}
				}

				public WhereParameter CompanyName2
				{
					get
					{
							WhereParameter wp = new WhereParameter(CompanySchema.CompanyName2);
							this._clause._entity.Query.AddWhereParameter(wp);
							return wp;
					}
				}

				public WhereParameter CompanyName3
				{
					get
					{
							WhereParameter wp = new WhereParameter(CompanySchema.CompanyName3);
							this._clause._entity.Query.AddWhereParameter(wp);
							return wp;
					}
				}

				public WhereParameter Address1
				{
					get
					{
							WhereParameter wp = new WhereParameter(CompanySchema.Address1);
							this._clause._entity.Query.AddWhereParameter(wp);
							return wp;
					}
				}

				public WhereParameter Address2
				{
					get
					{
							WhereParameter wp = new WhereParameter(CompanySchema.Address2);
							this._clause._entity.Query.AddWhereParameter(wp);
							return wp;
					}
				}

				public WhereParameter Address3
				{
					get
					{
							WhereParameter wp = new WhereParameter(CompanySchema.Address3);
							this._clause._entity.Query.AddWhereParameter(wp);
							return wp;
					}
				}

				public WhereParameter Hotline
				{
					get
					{
							WhereParameter wp = new WhereParameter(CompanySchema.Hotline);
							this._clause._entity.Query.AddWhereParameter(wp);
							return wp;
					}
				}

				public WhereParameter Tel
				{
					get
					{
							WhereParameter wp = new WhereParameter(CompanySchema.Tel);
							this._clause._entity.Query.AddWhereParameter(wp);
							return wp;
					}
				}

				public WhereParameter Fax
				{
					get
					{
							WhereParameter wp = new WhereParameter(CompanySchema.Fax);
							this._clause._entity.Query.AddWhereParameter(wp);
							return wp;
					}
				}

				public WhereParameter Email
				{
					get
					{
							WhereParameter wp = new WhereParameter(CompanySchema.Email);
							this._clause._entity.Query.AddWhereParameter(wp);
							return wp;
					}
				}

				public WhereParameter Website
				{
					get
					{
							WhereParameter wp = new WhereParameter(CompanySchema.Website);
							this._clause._entity.Query.AddWhereParameter(wp);
							return wp;
					}
				}

				public WhereParameter Copyright
				{
					get
					{
							WhereParameter wp = new WhereParameter(CompanySchema.Copyright);
							this._clause._entity.Query.AddWhereParameter(wp);
							return wp;
					}
				}

				public WhereParameter BranchAddress1
				{
					get
					{
							WhereParameter wp = new WhereParameter(CompanySchema.BranchAddress1);
							this._clause._entity.Query.AddWhereParameter(wp);
							return wp;
					}
				}

				public WhereParameter BranchAddress2
				{
					get
					{
							WhereParameter wp = new WhereParameter(CompanySchema.BranchAddress2);
							this._clause._entity.Query.AddWhereParameter(wp);
							return wp;
					}
				}

				public WhereParameter BranchAddress3
				{
					get
					{
							WhereParameter wp = new WhereParameter(CompanySchema.BranchAddress3);
							this._clause._entity.Query.AddWhereParameter(wp);
							return wp;
					}
				}

				public WhereParameter BranchHotline
				{
					get
					{
							WhereParameter wp = new WhereParameter(CompanySchema.BranchHotline);
							this._clause._entity.Query.AddWhereParameter(wp);
							return wp;
					}
				}

				public WhereParameter BranchTel
				{
					get
					{
							WhereParameter wp = new WhereParameter(CompanySchema.BranchTel);
							this._clause._entity.Query.AddWhereParameter(wp);
							return wp;
					}
				}

				public WhereParameter BranchFax
				{
					get
					{
							WhereParameter wp = new WhereParameter(CompanySchema.BranchFax);
							this._clause._entity.Query.AddWhereParameter(wp);
							return wp;
					}
				}

				public WhereParameter BranchEmail
				{
					get
					{
							WhereParameter wp = new WhereParameter(CompanySchema.BranchEmail);
							this._clause._entity.Query.AddWhereParameter(wp);
							return wp;
					}
				}

				public WhereParameter BranchCompanyName1
				{
					get
					{
							WhereParameter wp = new WhereParameter(CompanySchema.BranchCompanyName1);
							this._clause._entity.Query.AddWhereParameter(wp);
							return wp;
					}
				}

				public WhereParameter BranchCompanyName2
				{
					get
					{
							WhereParameter wp = new WhereParameter(CompanySchema.BranchCompanyName2);
							this._clause._entity.Query.AddWhereParameter(wp);
							return wp;
					}
				}

				public WhereParameter BranchCompanyName3
				{
					get
					{
							WhereParameter wp = new WhereParameter(CompanySchema.BranchCompanyName3);
							this._clause._entity.Query.AddWhereParameter(wp);
							return wp;
					}
				}

				public WhereParameter YahooAccount1
				{
					get
					{
							WhereParameter wp = new WhereParameter(CompanySchema.YahooAccount1);
							this._clause._entity.Query.AddWhereParameter(wp);
							return wp;
					}
				}

				public WhereParameter YahooAccount2
				{
					get
					{
							WhereParameter wp = new WhereParameter(CompanySchema.YahooAccount2);
							this._clause._entity.Query.AddWhereParameter(wp);
							return wp;
					}
				}

				public WhereParameter YahooAccount3
				{
					get
					{
							WhereParameter wp = new WhereParameter(CompanySchema.YahooAccount3);
							this._clause._entity.Query.AddWhereParameter(wp);
							return wp;
					}
				}

				public WhereParameter YahooAccount4
				{
					get
					{
							WhereParameter wp = new WhereParameter(CompanySchema.YahooAccount4);
							this._clause._entity.Query.AddWhereParameter(wp);
							return wp;
					}
				}

				public WhereParameter SkypeAccount1
				{
					get
					{
							WhereParameter wp = new WhereParameter(CompanySchema.SkypeAccount1);
							this._clause._entity.Query.AddWhereParameter(wp);
							return wp;
					}
				}

				public WhereParameter SkypeAccount2
				{
					get
					{
							WhereParameter wp = new WhereParameter(CompanySchema.SkypeAccount2);
							this._clause._entity.Query.AddWhereParameter(wp);
							return wp;
					}
				}

				public WhereParameter SkypeAccount3
				{
					get
					{
							WhereParameter wp = new WhereParameter(CompanySchema.SkypeAccount3);
							this._clause._entity.Query.AddWhereParameter(wp);
							return wp;
					}
				}

				public WhereParameter SkypeAccount4
				{
					get
					{
							WhereParameter wp = new WhereParameter(CompanySchema.SkypeAccount4);
							this._clause._entity.Query.AddWhereParameter(wp);
							return wp;
					}
				}


				private WhereClause _clause;
			}
			#endregion
		
			public WhereParameter CompanyID
		    {
				get
		        {
					if(_CompanyID_W == null)
	        	    {
						_CompanyID_W = TearOff.CompanyID;
					}
					return _CompanyID_W;
				}
			}

			public WhereParameter CompanyName1
		    {
				get
		        {
					if(_CompanyName1_W == null)
	        	    {
						_CompanyName1_W = TearOff.CompanyName1;
					}
					return _CompanyName1_W;
				}
			}

			public WhereParameter CompanyName2
		    {
				get
		        {
					if(_CompanyName2_W == null)
	        	    {
						_CompanyName2_W = TearOff.CompanyName2;
					}
					return _CompanyName2_W;
				}
			}

			public WhereParameter CompanyName3
		    {
				get
		        {
					if(_CompanyName3_W == null)
	        	    {
						_CompanyName3_W = TearOff.CompanyName3;
					}
					return _CompanyName3_W;
				}
			}

			public WhereParameter Address1
		    {
				get
		        {
					if(_Address1_W == null)
	        	    {
						_Address1_W = TearOff.Address1;
					}
					return _Address1_W;
				}
			}

			public WhereParameter Address2
		    {
				get
		        {
					if(_Address2_W == null)
	        	    {
						_Address2_W = TearOff.Address2;
					}
					return _Address2_W;
				}
			}

			public WhereParameter Address3
		    {
				get
		        {
					if(_Address3_W == null)
	        	    {
						_Address3_W = TearOff.Address3;
					}
					return _Address3_W;
				}
			}

			public WhereParameter Hotline
		    {
				get
		        {
					if(_Hotline_W == null)
	        	    {
						_Hotline_W = TearOff.Hotline;
					}
					return _Hotline_W;
				}
			}

			public WhereParameter Tel
		    {
				get
		        {
					if(_Tel_W == null)
	        	    {
						_Tel_W = TearOff.Tel;
					}
					return _Tel_W;
				}
			}

			public WhereParameter Fax
		    {
				get
		        {
					if(_Fax_W == null)
	        	    {
						_Fax_W = TearOff.Fax;
					}
					return _Fax_W;
				}
			}

			public WhereParameter Email
		    {
				get
		        {
					if(_Email_W == null)
	        	    {
						_Email_W = TearOff.Email;
					}
					return _Email_W;
				}
			}

			public WhereParameter Website
		    {
				get
		        {
					if(_Website_W == null)
	        	    {
						_Website_W = TearOff.Website;
					}
					return _Website_W;
				}
			}

			public WhereParameter Copyright
		    {
				get
		        {
					if(_Copyright_W == null)
	        	    {
						_Copyright_W = TearOff.Copyright;
					}
					return _Copyright_W;
				}
			}

			public WhereParameter BranchAddress1
		    {
				get
		        {
					if(_BranchAddress1_W == null)
	        	    {
						_BranchAddress1_W = TearOff.BranchAddress1;
					}
					return _BranchAddress1_W;
				}
			}

			public WhereParameter BranchAddress2
		    {
				get
		        {
					if(_BranchAddress2_W == null)
	        	    {
						_BranchAddress2_W = TearOff.BranchAddress2;
					}
					return _BranchAddress2_W;
				}
			}

			public WhereParameter BranchAddress3
		    {
				get
		        {
					if(_BranchAddress3_W == null)
	        	    {
						_BranchAddress3_W = TearOff.BranchAddress3;
					}
					return _BranchAddress3_W;
				}
			}

			public WhereParameter BranchHotline
		    {
				get
		        {
					if(_BranchHotline_W == null)
	        	    {
						_BranchHotline_W = TearOff.BranchHotline;
					}
					return _BranchHotline_W;
				}
			}

			public WhereParameter BranchTel
		    {
				get
		        {
					if(_BranchTel_W == null)
	        	    {
						_BranchTel_W = TearOff.BranchTel;
					}
					return _BranchTel_W;
				}
			}

			public WhereParameter BranchFax
		    {
				get
		        {
					if(_BranchFax_W == null)
	        	    {
						_BranchFax_W = TearOff.BranchFax;
					}
					return _BranchFax_W;
				}
			}

			public WhereParameter BranchEmail
		    {
				get
		        {
					if(_BranchEmail_W == null)
	        	    {
						_BranchEmail_W = TearOff.BranchEmail;
					}
					return _BranchEmail_W;
				}
			}

			public WhereParameter BranchCompanyName1
		    {
				get
		        {
					if(_BranchCompanyName1_W == null)
	        	    {
						_BranchCompanyName1_W = TearOff.BranchCompanyName1;
					}
					return _BranchCompanyName1_W;
				}
			}

			public WhereParameter BranchCompanyName2
		    {
				get
		        {
					if(_BranchCompanyName2_W == null)
	        	    {
						_BranchCompanyName2_W = TearOff.BranchCompanyName2;
					}
					return _BranchCompanyName2_W;
				}
			}

			public WhereParameter BranchCompanyName3
		    {
				get
		        {
					if(_BranchCompanyName3_W == null)
	        	    {
						_BranchCompanyName3_W = TearOff.BranchCompanyName3;
					}
					return _BranchCompanyName3_W;
				}
			}

			public WhereParameter YahooAccount1
		    {
				get
		        {
					if(_YahooAccount1_W == null)
	        	    {
						_YahooAccount1_W = TearOff.YahooAccount1;
					}
					return _YahooAccount1_W;
				}
			}

			public WhereParameter YahooAccount2
		    {
				get
		        {
					if(_YahooAccount2_W == null)
	        	    {
						_YahooAccount2_W = TearOff.YahooAccount2;
					}
					return _YahooAccount2_W;
				}
			}

			public WhereParameter YahooAccount3
		    {
				get
		        {
					if(_YahooAccount3_W == null)
	        	    {
						_YahooAccount3_W = TearOff.YahooAccount3;
					}
					return _YahooAccount3_W;
				}
			}

			public WhereParameter YahooAccount4
		    {
				get
		        {
					if(_YahooAccount4_W == null)
	        	    {
						_YahooAccount4_W = TearOff.YahooAccount4;
					}
					return _YahooAccount4_W;
				}
			}

			public WhereParameter SkypeAccount1
		    {
				get
		        {
					if(_SkypeAccount1_W == null)
	        	    {
						_SkypeAccount1_W = TearOff.SkypeAccount1;
					}
					return _SkypeAccount1_W;
				}
			}

			public WhereParameter SkypeAccount2
		    {
				get
		        {
					if(_SkypeAccount2_W == null)
	        	    {
						_SkypeAccount2_W = TearOff.SkypeAccount2;
					}
					return _SkypeAccount2_W;
				}
			}

			public WhereParameter SkypeAccount3
		    {
				get
		        {
					if(_SkypeAccount3_W == null)
	        	    {
						_SkypeAccount3_W = TearOff.SkypeAccount3;
					}
					return _SkypeAccount3_W;
				}
			}

			public WhereParameter SkypeAccount4
		    {
				get
		        {
					if(_SkypeAccount4_W == null)
	        	    {
						_SkypeAccount4_W = TearOff.SkypeAccount4;
					}
					return _SkypeAccount4_W;
				}
			}

			private WhereParameter _CompanyID_W = null;
			private WhereParameter _CompanyName1_W = null;
			private WhereParameter _CompanyName2_W = null;
			private WhereParameter _CompanyName3_W = null;
			private WhereParameter _Address1_W = null;
			private WhereParameter _Address2_W = null;
			private WhereParameter _Address3_W = null;
			private WhereParameter _Hotline_W = null;
			private WhereParameter _Tel_W = null;
			private WhereParameter _Fax_W = null;
			private WhereParameter _Email_W = null;
			private WhereParameter _Website_W = null;
			private WhereParameter _Copyright_W = null;
			private WhereParameter _BranchAddress1_W = null;
			private WhereParameter _BranchAddress2_W = null;
			private WhereParameter _BranchAddress3_W = null;
			private WhereParameter _BranchHotline_W = null;
			private WhereParameter _BranchTel_W = null;
			private WhereParameter _BranchFax_W = null;
			private WhereParameter _BranchEmail_W = null;
			private WhereParameter _BranchCompanyName1_W = null;
			private WhereParameter _BranchCompanyName2_W = null;
			private WhereParameter _BranchCompanyName3_W = null;
			private WhereParameter _YahooAccount1_W = null;
			private WhereParameter _YahooAccount2_W = null;
			private WhereParameter _YahooAccount3_W = null;
			private WhereParameter _YahooAccount4_W = null;
			private WhereParameter _SkypeAccount1_W = null;
			private WhereParameter _SkypeAccount2_W = null;
			private WhereParameter _SkypeAccount3_W = null;
			private WhereParameter _SkypeAccount4_W = null;

			public void WhereClauseReset()
			{
				_CompanyID_W = null;
				_CompanyName1_W = null;
				_CompanyName2_W = null;
				_CompanyName3_W = null;
				_Address1_W = null;
				_Address2_W = null;
				_Address3_W = null;
				_Hotline_W = null;
				_Tel_W = null;
				_Fax_W = null;
				_Email_W = null;
				_Website_W = null;
				_Copyright_W = null;
				_BranchAddress1_W = null;
				_BranchAddress2_W = null;
				_BranchAddress3_W = null;
				_BranchHotline_W = null;
				_BranchTel_W = null;
				_BranchFax_W = null;
				_BranchEmail_W = null;
				_BranchCompanyName1_W = null;
				_BranchCompanyName2_W = null;
				_BranchCompanyName3_W = null;
				_YahooAccount1_W = null;
				_YahooAccount2_W = null;
				_YahooAccount3_W = null;
				_YahooAccount4_W = null;
				_SkypeAccount1_W = null;
				_SkypeAccount2_W = null;
				_SkypeAccount3_W = null;
				_SkypeAccount4_W = null;

				this._entity.Query.FlushWhereParameters();

			}
	
			private EasyObject _entity;
			private TearOffWhereParameter _tearOff;
			
		}
	
		public WhereClause Where
		{
			get
			{
				if(_whereClause == null)
				{
					_whereClause = new WhereClause(this);
				}
		
				return _whereClause;
			}
		}
		
		private WhereClause _whereClause = null;	
		#endregion
		
		#region Aggregate Clause
		public class AggregateClause
		{
			public AggregateClause(EasyObject entity)
			{
				this._entity = entity;
			}
			
			public TearOffAggregateParameter TearOff
			{
				get
				{
					if(_tearOff == null)
					{
						_tearOff = new TearOffAggregateParameter(this);
					}

					return _tearOff;
				}
			}

			#region TearOff's
			public class TearOffAggregateParameter
			{
				public TearOffAggregateParameter(AggregateClause clause)
				{
					this._clause = clause;
				}
				
				
				public AggregateParameter CompanyID
				{
					get
					{
							AggregateParameter ap = new AggregateParameter(CompanySchema.CompanyID);
							this._clause._entity.Query.AddAggregateParameter(ap);
							return ap;
					}
				}

				public AggregateParameter CompanyName1
				{
					get
					{
							AggregateParameter ap = new AggregateParameter(CompanySchema.CompanyName1);
							this._clause._entity.Query.AddAggregateParameter(ap);
							return ap;
					}
				}

				public AggregateParameter CompanyName2
				{
					get
					{
							AggregateParameter ap = new AggregateParameter(CompanySchema.CompanyName2);
							this._clause._entity.Query.AddAggregateParameter(ap);
							return ap;
					}
				}

				public AggregateParameter CompanyName3
				{
					get
					{
							AggregateParameter ap = new AggregateParameter(CompanySchema.CompanyName3);
							this._clause._entity.Query.AddAggregateParameter(ap);
							return ap;
					}
				}

				public AggregateParameter Address1
				{
					get
					{
							AggregateParameter ap = new AggregateParameter(CompanySchema.Address1);
							this._clause._entity.Query.AddAggregateParameter(ap);
							return ap;
					}
				}

				public AggregateParameter Address2
				{
					get
					{
							AggregateParameter ap = new AggregateParameter(CompanySchema.Address2);
							this._clause._entity.Query.AddAggregateParameter(ap);
							return ap;
					}
				}

				public AggregateParameter Address3
				{
					get
					{
							AggregateParameter ap = new AggregateParameter(CompanySchema.Address3);
							this._clause._entity.Query.AddAggregateParameter(ap);
							return ap;
					}
				}

				public AggregateParameter Hotline
				{
					get
					{
							AggregateParameter ap = new AggregateParameter(CompanySchema.Hotline);
							this._clause._entity.Query.AddAggregateParameter(ap);
							return ap;
					}
				}

				public AggregateParameter Tel
				{
					get
					{
							AggregateParameter ap = new AggregateParameter(CompanySchema.Tel);
							this._clause._entity.Query.AddAggregateParameter(ap);
							return ap;
					}
				}

				public AggregateParameter Fax
				{
					get
					{
							AggregateParameter ap = new AggregateParameter(CompanySchema.Fax);
							this._clause._entity.Query.AddAggregateParameter(ap);
							return ap;
					}
				}

				public AggregateParameter Email
				{
					get
					{
							AggregateParameter ap = new AggregateParameter(CompanySchema.Email);
							this._clause._entity.Query.AddAggregateParameter(ap);
							return ap;
					}
				}

				public AggregateParameter Website
				{
					get
					{
							AggregateParameter ap = new AggregateParameter(CompanySchema.Website);
							this._clause._entity.Query.AddAggregateParameter(ap);
							return ap;
					}
				}

				public AggregateParameter Copyright
				{
					get
					{
							AggregateParameter ap = new AggregateParameter(CompanySchema.Copyright);
							this._clause._entity.Query.AddAggregateParameter(ap);
							return ap;
					}
				}

				public AggregateParameter BranchAddress1
				{
					get
					{
							AggregateParameter ap = new AggregateParameter(CompanySchema.BranchAddress1);
							this._clause._entity.Query.AddAggregateParameter(ap);
							return ap;
					}
				}

				public AggregateParameter BranchAddress2
				{
					get
					{
							AggregateParameter ap = new AggregateParameter(CompanySchema.BranchAddress2);
							this._clause._entity.Query.AddAggregateParameter(ap);
							return ap;
					}
				}

				public AggregateParameter BranchAddress3
				{
					get
					{
							AggregateParameter ap = new AggregateParameter(CompanySchema.BranchAddress3);
							this._clause._entity.Query.AddAggregateParameter(ap);
							return ap;
					}
				}

				public AggregateParameter BranchHotline
				{
					get
					{
							AggregateParameter ap = new AggregateParameter(CompanySchema.BranchHotline);
							this._clause._entity.Query.AddAggregateParameter(ap);
							return ap;
					}
				}

				public AggregateParameter BranchTel
				{
					get
					{
							AggregateParameter ap = new AggregateParameter(CompanySchema.BranchTel);
							this._clause._entity.Query.AddAggregateParameter(ap);
							return ap;
					}
				}

				public AggregateParameter BranchFax
				{
					get
					{
							AggregateParameter ap = new AggregateParameter(CompanySchema.BranchFax);
							this._clause._entity.Query.AddAggregateParameter(ap);
							return ap;
					}
				}

				public AggregateParameter BranchEmail
				{
					get
					{
							AggregateParameter ap = new AggregateParameter(CompanySchema.BranchEmail);
							this._clause._entity.Query.AddAggregateParameter(ap);
							return ap;
					}
				}

				public AggregateParameter BranchCompanyName1
				{
					get
					{
							AggregateParameter ap = new AggregateParameter(CompanySchema.BranchCompanyName1);
							this._clause._entity.Query.AddAggregateParameter(ap);
							return ap;
					}
				}

				public AggregateParameter BranchCompanyName2
				{
					get
					{
							AggregateParameter ap = new AggregateParameter(CompanySchema.BranchCompanyName2);
							this._clause._entity.Query.AddAggregateParameter(ap);
							return ap;
					}
				}

				public AggregateParameter BranchCompanyName3
				{
					get
					{
							AggregateParameter ap = new AggregateParameter(CompanySchema.BranchCompanyName3);
							this._clause._entity.Query.AddAggregateParameter(ap);
							return ap;
					}
				}

				public AggregateParameter YahooAccount1
				{
					get
					{
							AggregateParameter ap = new AggregateParameter(CompanySchema.YahooAccount1);
							this._clause._entity.Query.AddAggregateParameter(ap);
							return ap;
					}
				}

				public AggregateParameter YahooAccount2
				{
					get
					{
							AggregateParameter ap = new AggregateParameter(CompanySchema.YahooAccount2);
							this._clause._entity.Query.AddAggregateParameter(ap);
							return ap;
					}
				}

				public AggregateParameter YahooAccount3
				{
					get
					{
							AggregateParameter ap = new AggregateParameter(CompanySchema.YahooAccount3);
							this._clause._entity.Query.AddAggregateParameter(ap);
							return ap;
					}
				}

				public AggregateParameter YahooAccount4
				{
					get
					{
							AggregateParameter ap = new AggregateParameter(CompanySchema.YahooAccount4);
							this._clause._entity.Query.AddAggregateParameter(ap);
							return ap;
					}
				}

				public AggregateParameter SkypeAccount1
				{
					get
					{
							AggregateParameter ap = new AggregateParameter(CompanySchema.SkypeAccount1);
							this._clause._entity.Query.AddAggregateParameter(ap);
							return ap;
					}
				}

				public AggregateParameter SkypeAccount2
				{
					get
					{
							AggregateParameter ap = new AggregateParameter(CompanySchema.SkypeAccount2);
							this._clause._entity.Query.AddAggregateParameter(ap);
							return ap;
					}
				}

				public AggregateParameter SkypeAccount3
				{
					get
					{
							AggregateParameter ap = new AggregateParameter(CompanySchema.SkypeAccount3);
							this._clause._entity.Query.AddAggregateParameter(ap);
							return ap;
					}
				}

				public AggregateParameter SkypeAccount4
				{
					get
					{
							AggregateParameter ap = new AggregateParameter(CompanySchema.SkypeAccount4);
							this._clause._entity.Query.AddAggregateParameter(ap);
							return ap;
					}
				}


				private AggregateClause _clause;
			}
			#endregion
		
			public AggregateParameter CompanyID
		    {
				get
		        {
					if(_CompanyID_W == null)
	        	    {
						_CompanyID_W = TearOff.CompanyID;
					}
					return _CompanyID_W;
				}
			}

			public AggregateParameter CompanyName1
		    {
				get
		        {
					if(_CompanyName1_W == null)
	        	    {
						_CompanyName1_W = TearOff.CompanyName1;
					}
					return _CompanyName1_W;
				}
			}

			public AggregateParameter CompanyName2
		    {
				get
		        {
					if(_CompanyName2_W == null)
	        	    {
						_CompanyName2_W = TearOff.CompanyName2;
					}
					return _CompanyName2_W;
				}
			}

			public AggregateParameter CompanyName3
		    {
				get
		        {
					if(_CompanyName3_W == null)
	        	    {
						_CompanyName3_W = TearOff.CompanyName3;
					}
					return _CompanyName3_W;
				}
			}

			public AggregateParameter Address1
		    {
				get
		        {
					if(_Address1_W == null)
	        	    {
						_Address1_W = TearOff.Address1;
					}
					return _Address1_W;
				}
			}

			public AggregateParameter Address2
		    {
				get
		        {
					if(_Address2_W == null)
	        	    {
						_Address2_W = TearOff.Address2;
					}
					return _Address2_W;
				}
			}

			public AggregateParameter Address3
		    {
				get
		        {
					if(_Address3_W == null)
	        	    {
						_Address3_W = TearOff.Address3;
					}
					return _Address3_W;
				}
			}

			public AggregateParameter Hotline
		    {
				get
		        {
					if(_Hotline_W == null)
	        	    {
						_Hotline_W = TearOff.Hotline;
					}
					return _Hotline_W;
				}
			}

			public AggregateParameter Tel
		    {
				get
		        {
					if(_Tel_W == null)
	        	    {
						_Tel_W = TearOff.Tel;
					}
					return _Tel_W;
				}
			}

			public AggregateParameter Fax
		    {
				get
		        {
					if(_Fax_W == null)
	        	    {
						_Fax_W = TearOff.Fax;
					}
					return _Fax_W;
				}
			}

			public AggregateParameter Email
		    {
				get
		        {
					if(_Email_W == null)
	        	    {
						_Email_W = TearOff.Email;
					}
					return _Email_W;
				}
			}

			public AggregateParameter Website
		    {
				get
		        {
					if(_Website_W == null)
	        	    {
						_Website_W = TearOff.Website;
					}
					return _Website_W;
				}
			}

			public AggregateParameter Copyright
		    {
				get
		        {
					if(_Copyright_W == null)
	        	    {
						_Copyright_W = TearOff.Copyright;
					}
					return _Copyright_W;
				}
			}

			public AggregateParameter BranchAddress1
		    {
				get
		        {
					if(_BranchAddress1_W == null)
	        	    {
						_BranchAddress1_W = TearOff.BranchAddress1;
					}
					return _BranchAddress1_W;
				}
			}

			public AggregateParameter BranchAddress2
		    {
				get
		        {
					if(_BranchAddress2_W == null)
	        	    {
						_BranchAddress2_W = TearOff.BranchAddress2;
					}
					return _BranchAddress2_W;
				}
			}

			public AggregateParameter BranchAddress3
		    {
				get
		        {
					if(_BranchAddress3_W == null)
	        	    {
						_BranchAddress3_W = TearOff.BranchAddress3;
					}
					return _BranchAddress3_W;
				}
			}

			public AggregateParameter BranchHotline
		    {
				get
		        {
					if(_BranchHotline_W == null)
	        	    {
						_BranchHotline_W = TearOff.BranchHotline;
					}
					return _BranchHotline_W;
				}
			}

			public AggregateParameter BranchTel
		    {
				get
		        {
					if(_BranchTel_W == null)
	        	    {
						_BranchTel_W = TearOff.BranchTel;
					}
					return _BranchTel_W;
				}
			}

			public AggregateParameter BranchFax
		    {
				get
		        {
					if(_BranchFax_W == null)
	        	    {
						_BranchFax_W = TearOff.BranchFax;
					}
					return _BranchFax_W;
				}
			}

			public AggregateParameter BranchEmail
		    {
				get
		        {
					if(_BranchEmail_W == null)
	        	    {
						_BranchEmail_W = TearOff.BranchEmail;
					}
					return _BranchEmail_W;
				}
			}

			public AggregateParameter BranchCompanyName1
		    {
				get
		        {
					if(_BranchCompanyName1_W == null)
	        	    {
						_BranchCompanyName1_W = TearOff.BranchCompanyName1;
					}
					return _BranchCompanyName1_W;
				}
			}

			public AggregateParameter BranchCompanyName2
		    {
				get
		        {
					if(_BranchCompanyName2_W == null)
	        	    {
						_BranchCompanyName2_W = TearOff.BranchCompanyName2;
					}
					return _BranchCompanyName2_W;
				}
			}

			public AggregateParameter BranchCompanyName3
		    {
				get
		        {
					if(_BranchCompanyName3_W == null)
	        	    {
						_BranchCompanyName3_W = TearOff.BranchCompanyName3;
					}
					return _BranchCompanyName3_W;
				}
			}

			public AggregateParameter YahooAccount1
		    {
				get
		        {
					if(_YahooAccount1_W == null)
	        	    {
						_YahooAccount1_W = TearOff.YahooAccount1;
					}
					return _YahooAccount1_W;
				}
			}

			public AggregateParameter YahooAccount2
		    {
				get
		        {
					if(_YahooAccount2_W == null)
	        	    {
						_YahooAccount2_W = TearOff.YahooAccount2;
					}
					return _YahooAccount2_W;
				}
			}

			public AggregateParameter YahooAccount3
		    {
				get
		        {
					if(_YahooAccount3_W == null)
	        	    {
						_YahooAccount3_W = TearOff.YahooAccount3;
					}
					return _YahooAccount3_W;
				}
			}

			public AggregateParameter YahooAccount4
		    {
				get
		        {
					if(_YahooAccount4_W == null)
	        	    {
						_YahooAccount4_W = TearOff.YahooAccount4;
					}
					return _YahooAccount4_W;
				}
			}

			public AggregateParameter SkypeAccount1
		    {
				get
		        {
					if(_SkypeAccount1_W == null)
	        	    {
						_SkypeAccount1_W = TearOff.SkypeAccount1;
					}
					return _SkypeAccount1_W;
				}
			}

			public AggregateParameter SkypeAccount2
		    {
				get
		        {
					if(_SkypeAccount2_W == null)
	        	    {
						_SkypeAccount2_W = TearOff.SkypeAccount2;
					}
					return _SkypeAccount2_W;
				}
			}

			public AggregateParameter SkypeAccount3
		    {
				get
		        {
					if(_SkypeAccount3_W == null)
	        	    {
						_SkypeAccount3_W = TearOff.SkypeAccount3;
					}
					return _SkypeAccount3_W;
				}
			}

			public AggregateParameter SkypeAccount4
		    {
				get
		        {
					if(_SkypeAccount4_W == null)
	        	    {
						_SkypeAccount4_W = TearOff.SkypeAccount4;
					}
					return _SkypeAccount4_W;
				}
			}

			private AggregateParameter _CompanyID_W = null;
			private AggregateParameter _CompanyName1_W = null;
			private AggregateParameter _CompanyName2_W = null;
			private AggregateParameter _CompanyName3_W = null;
			private AggregateParameter _Address1_W = null;
			private AggregateParameter _Address2_W = null;
			private AggregateParameter _Address3_W = null;
			private AggregateParameter _Hotline_W = null;
			private AggregateParameter _Tel_W = null;
			private AggregateParameter _Fax_W = null;
			private AggregateParameter _Email_W = null;
			private AggregateParameter _Website_W = null;
			private AggregateParameter _Copyright_W = null;
			private AggregateParameter _BranchAddress1_W = null;
			private AggregateParameter _BranchAddress2_W = null;
			private AggregateParameter _BranchAddress3_W = null;
			private AggregateParameter _BranchHotline_W = null;
			private AggregateParameter _BranchTel_W = null;
			private AggregateParameter _BranchFax_W = null;
			private AggregateParameter _BranchEmail_W = null;
			private AggregateParameter _BranchCompanyName1_W = null;
			private AggregateParameter _BranchCompanyName2_W = null;
			private AggregateParameter _BranchCompanyName3_W = null;
			private AggregateParameter _YahooAccount1_W = null;
			private AggregateParameter _YahooAccount2_W = null;
			private AggregateParameter _YahooAccount3_W = null;
			private AggregateParameter _YahooAccount4_W = null;
			private AggregateParameter _SkypeAccount1_W = null;
			private AggregateParameter _SkypeAccount2_W = null;
			private AggregateParameter _SkypeAccount3_W = null;
			private AggregateParameter _SkypeAccount4_W = null;

			public void AggregateClauseReset()
			{
				_CompanyID_W = null;
				_CompanyName1_W = null;
				_CompanyName2_W = null;
				_CompanyName3_W = null;
				_Address1_W = null;
				_Address2_W = null;
				_Address3_W = null;
				_Hotline_W = null;
				_Tel_W = null;
				_Fax_W = null;
				_Email_W = null;
				_Website_W = null;
				_Copyright_W = null;
				_BranchAddress1_W = null;
				_BranchAddress2_W = null;
				_BranchAddress3_W = null;
				_BranchHotline_W = null;
				_BranchTel_W = null;
				_BranchFax_W = null;
				_BranchEmail_W = null;
				_BranchCompanyName1_W = null;
				_BranchCompanyName2_W = null;
				_BranchCompanyName3_W = null;
				_YahooAccount1_W = null;
				_YahooAccount2_W = null;
				_YahooAccount3_W = null;
				_YahooAccount4_W = null;
				_SkypeAccount1_W = null;
				_SkypeAccount2_W = null;
				_SkypeAccount3_W = null;
				_SkypeAccount4_W = null;

				this._entity.Query.FlushAggregateParameters();

			}
	
			private EasyObject _entity;
			private TearOffAggregateParameter _tearOff;
			
		}
	
		public AggregateClause Aggregate
		{
			get
			{
				if(_aggregateClause == null)
				{
					_aggregateClause = new AggregateClause(this);
				}
		
				return _aggregateClause;
			}
		}
		
		private AggregateClause _aggregateClause = null;	
		#endregion
	}
}
